fix: record explicit release outcomes without publishing - #690
Merged
Conversation
A green Release packages run can mean the Version Packages PR was refreshed. Write version-maintenance-only, qualified-without-publish, published, or failed, with stages and pack evidence for the exact candidate SHA.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Job-level env cannot use runner.temp (actionlint). Map cancelled runs to failed, pass NPM_TOKEN into registry verification, and cover the other outcome paths.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release packageswrite one explicit outcome (version-maintenance-only,qualified-without-publish,published, orfailed) with executed/skipped stages, so a Version Packages PR refresh is not mistaken for qualification or publication.run-packed-tests.mjsfor candidate evidence (package names/versions, tarball sha256, inter-package ranges, noworkspace:leftovers, every declared bin) against the exact versioned SHA; registrynpm viewruns only when publication is separately authorized.Closes #687
Test plan
bash scripts/release-outcome-summary.shfixture +pnpm exec rstest --config rstest.unit.config.ts packages/agent-bundle/tests/release-outcome-summary.test.ts(4 cases: maintenance / qualified+evidence / cancelled→failed / published)pnpm test:packed— 14 files, 39 passed, 1 skipped; evidence written; workspace refs none; binsagent-bundle+create-agent-bundlepnpm build && pnpm typecheck && pnpm lint— passpnpm test:unit— 4396 tests; one unrelated 30s timeout inroute-invocation-service.test.tsunder load; isolated retry passedpnpm docs:site:build— pass (0 locale drift, 0 broken links)actionlint .github/workflows/release.yml— only pre-existing intentional SC2016 on${NPM_TOKEN}skip-changeset(workflow/docs/tests only)Local gate (paste)
Example summary (
qualified-without-publish)This merge to main will itself be
version-maintenance-only(pending changesets refresh #411; not a Version Packages commit). NOT PUBLISHED.Deslop
Deslop: grok-4.6, 2 edits (dropped hardcoded packedCoverage claims;
set -u-safe follow-up loop).Self-review
Reviewer: Claude Fable high (
change-risk-reviewer, Review).First pass (9c070fd):
runner.tempat job env — fixed (github.workspace)NPM_TOKEN— fixedfailed)process.exitskippedfinally— fixed (throw)Second pass (a042944): no remaining merge risks.